package com.gw.jpa.controller;

import com.gw.jpa.entity.Grade;
import com.gw.jpa.service.GradeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

//控制层是前后台交互的层，我采用的是restful编写格式的接口，对于资源的具体操作类型，由HTTP动词表示。
@RestController //所有的方法返回的都是json格式
@RequestMapping("/grade") //定义模块名称
public class GradeController { //跟前端交互，处理的是年级相关的请求
    @Autowired //依赖的自动注入
    GradeService gradeService;
    @GetMapping("/{gid}")
    public Grade getGrade(@PathVariable("gid") Integer gid){

        //调用业务逻辑层根据gid查询年级
        return gradeService.getGrade(gid);
    }

    @PostMapping("")
    public Grade addGrade(Grade grade){

        //调用业务逻辑层，添加班级信息
        return gradeService.addGrade(grade);
    }

    @PutMapping("")
    public Grade updateGrade(Grade grade){

        //调用业务逻辑层，更新班级信息
        return gradeService.updateGrade(grade);
    }

    @GetMapping("")
    public List<Grade> getGradeJquery(){

        //调用业务逻辑层，获得全部班级信息
        return gradeService.getGradeJquery();
    }

    @DeleteMapping({"gid"})
    public void deleteGrade(@PathVariable("gid") Integer gid){

        //调用业务逻辑层，通过gid删除指定的班级信息
        gradeService.deleteGrade(gid);
    }
}
